At least one known file system includes a file server connected via a local area network (LAN) with a set of client accessing files maintained in storage by the file server. Network protocols such as network file system (NFS) and common Internet file system (CIFS) are used to communicate and coordinate file metadata and file content between the clients and the file server over the LAN.
The advent of storage area networks (SANs) and the need for increased file sharing performance has led to at least one known system in which clients perform read and writes of file data directly to storage in the SAN, thus avoiding the requirement that all I/O (input and output) pass through the file server. This system uses known NFS and CIFS protocols for communication of file metadata over the LAN, but uses the SAN interface to perform reads and writes directly to SAN storage.
In some cases, snapshots of a file system at a specific point in time are required, such as for performing backups of the file system. One known method for implementing snapshots of a file system copies a block of a file system when that block is written, to preserve the data as it existed at a selected time (i.e., the snapshot time). Either the old or the new data is copied or moved to a new storage location. However, copy-on-write systems experience coherency problems when clients attempt to access the same location in a file by direct I/O access rather than by obtaining file content from the file server.